home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Franz PD
/
Franz PD Disk #221 (1993)(Rhein-Sieg-Soft).zip
/
Franz PD Disk #221 (1993)(Rhein-Sieg-Soft).adf
/
DoBB
/
DoBB.S
< prev
next >
Wrap
Text File
|
1993-03-01
|
11KB
|
432 lines
;*********************************************
;* DoBB V1.05 *
;* Installiert nach Option einen BootBlock *
;* Sprache: Kuma-Seka Assembler V3.0 *
;* © 1992 Volker Stepprath *
;*********************************************
;**** VARIABLEN DEFINIEREN *************
ExecBase = 4
Open = - 30
Close = - 36
Read = - 42
Write = - 48
AllocMem = -198
FreeMem = -210
FindTask = -294
OpenLib = -408
CloseLib = -414
OpenDevice = -444
CloseDevice = -450
DoIO = -456
;***************************************
;**** PARAMETERTEST ********************
Cmp.l #7,D0
Ble xFEHLER
Cmp.b #58,3(A0)
Bne xFEHLER
Move.b 2(A0),D4
Sub.b #48,D4
Cmp.b #0,D4
Blt xFEHLER
Cmp.b #3,D4
Bgt xFEHLER
;***************************************
;**** PARAMETER RETTEN *****************
Move.l A0,D6
Move.l D0,D7
;***************************************
;**** HAUPTPROGRAMM ********************
xMAIN:
Jsr xOPENLIB
Jsr xOPEN
Jsr xOPENDEV
Cmp.l #0,D0
Bne xDEVFEHLER
Jsr xALLOCMEM
Jsr xBOOTBLOCK
Jsr xFREEMEM
Jsr xCLOSEDEV
Jsr xCLOSE
Jsr xCLOSELIB
Rts ;*******************************
;**** LIBRARY ÖFFNEN *******************
xOPENLIB:
Move.l ExecBase,A6
Lea DOSNAME,A1
Move.l #0,D0
Jsr OpenLib(A6)
Move.l D0,DOSBASE
Rts ;*******************************
;**** FENSTER ÖFFNEN *******************
xOPEN:
Move.l DOSBASE,A6
Move.l #FENSTER,D1
Move.l #1005,D2
Jsr Open(A6)
Move.l D0,HANDLE
Rts ;*******************************
;**** DEVICE ÖFFNEN ********************
xOPENDEV:
Move.l ExecBase,A6
Sub.l A1,A1
Jsr FindTask(A6)
Move.l D0,DISKREP+$10
Lea DISKIO,A1
Move.l #DISKREP,14(A1)
Clr.l D1
Move.l D4,D0
Lea DEVICE,A0
Jsr OpenDevice(A6)
Rts ;*******************************
;**** SPEICHER RESERVIEREN *************
xALLOCMEM:
Move.l ExecBase,A6
Move.l #1024,D0
Move.l #$10003,D1
Jsr AllocMem(A6)
Move.l D0,DISKBUFF
Rts ;*******************************
;**** SPEICHER LÖSCHEN *****************
xFREEMEM:
Move.l ExecBase,A6
Move.l #1024,D0
Move.l DISKBUFF,A1
Jsr FreeMem(A6)
Rts ;*******************************
;**** BOOTBLOCKDATEN INSTALLIEREN ******
xBOOTBLOCK:
Move.l D6,A0
Add.b #3,(A0)
;**** - ************
Cmp.b #45,5(A0)
Bne xUSAGE
;**** S ************
Cmp.b #83,6(A0)
Beq xBOOTODAT
Cmp.b #115,6(A0)
Beq xBOOTODAT
;**** L ************
Cmp.b #76,6(A0)
Beq xDATOBOOT
Cmp.b #108,6(A0)
Beq xDATOBOOT
;**** N ************
Cmp.b #78,6(A0)
Beq xNOBOOT
Cmp.b #110,6(A0)
Beq xNOBOOT
;**** D ************
Cmp.b #68,6(A0)
Beq xDOSBOOT
Cmp.b #100,6(A0)
Beq xDOSBOOT
;**** Q ************
Cmp.b #81,6(A0)
Beq xQUARTEXBOOT
Cmp.b #113,6(A0)
Beq xQUARTEXBOOT
Jmp xUSAGE ;***********************
;**** BOOTBLOCK IN DATEI EINLESEN ******
xBOOTODAT:
Move.l ExecBase,A6
Lea DISKIO,A1
Move #2,28(A1)
Move.l DISKBUFF,40(A1)
Move.l #1024,36(A1)
Move.l #0,44(A1)
Jsr DoIO(A6)
Jsr xGETNAME
Move.l DOSBASE,A6
Move.l #1006,D2
Jsr Open(A6)
Move.l D0,HANDLEDAT
Cmp.l #0,HANDLEDAT
Beq xFILEFEHLER
Move.l HANDLEDAT,D1
Move.l DISKBUFF,D2
Move.l #1024,D3
Jsr Write(A6)
Move.l HANDLEDAT,D1
Jsr Close(A6)
Rts ;*******************************
;**** DATEI IN BOOTBLOCK SCHREIBEN *****
xDATOBOOT:
Jsr xGETNAME
Move.l DOSBASE,A6
Move.l #1005,D2
Jsr Open(A6)
Move.l D0,HANDLEDAT
Cmp.l #0,HANDLEDAT
Beq xFILEFEHLER
Move.l HANDLEDAT,D1
Move.l DISKBUFF,D2
Move.l #1024,D3
Jsr Read(A6)
Move.l HANDLEDAT,D1
Jsr Close(A6)
Move.l DISKBUFF,A4
Move.l #255,D0
Jsr xDOIO
Rts ;*******************************
;**** UTILITY BOOT V2.0 ****************
xQUARTEXBOOT:
Lea QUARTEXBOOT,A4
Move.l #255,D0
Jsr xDoIO
Rts ;*******************************
;**** STANDART DOS BOOT ****************
xDOSBOOT:
Lea DOSBOOT,A4
Move.l #12,D0
Jsr xDoIO
Rts ;*******************************
;**** NO BOOT **************************
xNOBOOT:
Lea NOBOOT,A4
Move.l #0,D0
Jsr xDoIO
Rts ;*******************************
;**** DEVICEKOMMANDO AUSFÜHREN *********
xDOIO:
Move.l DISKBUFF,A5
MAKEBOOT:
Move.l (A4)+,(A5)+
Dbra D0,MAKEBOOT
Move.l ExecBase,A6
Lea DISKIO,A1
Move #3,28(A1)
Move.l DISKBUFF,40(A1)
Move.l #0,44(A1)
Move.l #1024,36(A1)
Jsr DoIO(A6)
Move #4,28(A1)
Jsr DoIO(A6)
Rts ;*******************************
;**** DATEINAMEN ERMITTELN *************
xGETNAME:
Move.l D6,A0
Add.l #8,A0
Sub.b #8,D7
Move.l A0,D2
Move.l D7,D3
Add.l D2,D3
Sub.l #1,D3
Move.l D3,A0
Move.b #0,(A0)
Move.l D2,D1
Rts ;*******************************
;**** KEINE GÜLTIGEN PARAMETER *********
xUSAGE:
Move.l DOSBASE,A6
Move.l #USAGE,D2
Move.l #USAGEEND,D3
Sub.l D2,D3
Move.l HANDLE,D1
Jsr Write(A6)
Rts ;*******************************
;**** PARAMETETFEHLER ******************
xFEHLER:
Jsr xOPENLIB
Jsr xOPEN
Jsr xUSAGE
Jsr xCLOSE
Jsr xCLOSELIB
Rts ;*******************************
;**** DRIVE NICHT VORHANDEN ************
xDEVFEHLER:
Move.l DOSBASE,A6
Move.l HANDLE,D1
Move.l #DEVERR,D2
Move.l #DEVERREND,D3
Sub.l D2,D3
Jsr Write(A6)
Jsr xCLOSE
Jsr xCLOSELIB
Rts ;*******************************
;**** DATEI WURDE NICHT GEÖFFNET *******
xFILEFEHLER:
Move.l DOSBASE,A6
Move.l HANDLE,D1
Move.l #FILERR,D2
Move.l #FILERREND,D3
Sub.l D2,D3
Jsr Write(A6)
Rts ;*******************************
;**** DATEI SCHLIEßEN ******************
xCLOSE:
Move.l DOSBASE,A6
Move.l HANDLE,D1
Jsr Close(A6)
Rts ;*******************************
;**** DEVICE SCHLIEßEN *****************
xCLOSEDEV:
Move.l ExecBase,A6
Lea DISKIO,A1
Move #9,28(A1)
Move.l #0,36(A1)
Jsr DoIO(A6)
Lea DISKIO,A1
Jsr CloseDevice(A6)
Rts ;*******************************
;**** LIBRARY SCHLIEßEN ****************
xCLOSELIB:
Move.l ExecBase,A6
Move.l DOSBASE,A1
Jsr CloseLib(A6)
Rts ;*******************************
;**** SPEICHERRESERVIERUNG *************
DOSNAME: Dc.b `dos.library`,0
Even
DEVICE: Dc.b `trackdisk.device`,0
Even
DOSBASE: Dc.l 0
DISKIO: Blk.l 20,0
DISKREP: Blk.l 8,0
DISKBUFF: Dc.l 0
FENSTER: Dc.b `*`,0
HANDLE: Dc.l 0
HANDLEDAT: Dc.l 0
USAGE:
Dc.b "USAGE: ",$9b,"33;40mDoBB",$9b,"0m [DRIVE] [-S FILE] [-L FILE] "
Dc.b "[-N] [-D] [-Q]",10
USAGEEND:
DEVERR:
Dc.b "Drive not available !",10
DEVERREND:
FILERR:
Dc.b "Can`t open file !",10
FILERREND:
Even
DOSBOOT:
Dc.l $444F5300,$C0200F19,$370,$43FA0018,$4EAEFFA0,$4A80670A,$20402068
Dc.l $167000,$4E7570FF,$60FA646F,$732E6C69,$62726172,$79000000
NOBOOT:
Dc.l $444F5300
QUARTEXBOOT:
Dc.l $444F5300,$1C2238A9,$370,$48E7FF7E,$70026100,$22E7009
Dc.l $42A90024,$6100023A,$41FA03CC,$22690014,$20A9003C,$22690038
Dc.l $2F0943FA,$2B8303C,$4E20222E,$3E0481,$80004,$6B043340
Dc.l $1E4AAE,$4E6704,$3340000A,$43FA02B6,$207A0394,$41E80034
Dc.l $4A986604,$33400008,$4A986604,$33400012,$4A986604,$3340001C
Dc.l $4AAE002A,$660C4AAE,$2E6606,$4AAE022A,$671A43FA,$3237020
Dc.l $1340001A,$12C012BC,$4145FA,$2D424FC,$56495249,$43F90007
Dc.l $80002449,$4299B3FC,$7F000,$66F62C57,$33FC01A0,$DFF096
Dc.l $43FA01CE,$2D490032,$41F90007,$1000214A,$87001,$223C0000
Dc.l $300243C,$100,$4EAEFE7A,$43F90007,$11004EAE,$FF3A43F9
Dc.l $71100,$237C0007,$10000004,$70014EAE,$FEAA4BFA,$1C87800
Dc.l $7632181D,$672E610E,$6830000,$1806106,$4BED001F,$60E843F9
Dc.l $71100,$20032204,$4EAEFF10,$43F90007,$1100204D,$701F4EAE
Dc.l $FFC44E75,$33FC8380,$DFF096,$283C000F,$F0002C78,$45384
Dc.l $670000B8,$43FA025A,$C110041,$661243FA,$1663011,$2400F00
Dc.l $6400100,$32805284,$4BF900BF,$E0010815,$66700,$8E102D
Dc.l $C00422D,$C004600,$B03C00A0,$670000D4,$B03C00A2,$660A203C
Dc.l $80000,$600000C8,$B03C00A4,$66164BF9,$FC00D0,$42AE0026
Dc.l $4EAEFFE2,$41F80002,$4E704ED0,$B03C00A6,$6738B03C,$A86606
Dc.l $4BFAFFEA,$60DEB03C,$AA6756,$B03C00AC,$66040855,$1B03C
Dc.l $AE6612,$47FA020C,$32130841,$53681,$33C100DF,$F1DC6000
Dc.l $FF52207A,$1F241E8,$3470FF,$20C020C0,$20806112,$43FA01E6
Dc.l $4EAEFFA0,$20402068,$167000,$4E75205F,$588F4CDF,$7EFF2F08
Dc.l $4E7561F2,$700541F9,$50000,$610C7003,$61087004,$61046000
Dc.l $FDCC41F9,$30000,$23480028,$237C0000,$4000024,$42A9002C
Dc.l $3340001C,$4EAEFE38,$4E75202E,$3E204E,$4BF900FC,$2800C65
Dc.l $21FC66FA,$99CC4DF8,$6762640,$43F900DF,$F096203C,$7FFF7FFF
Dc.l $22C022C0,$4EE8FFE2,$1002200,$1020001,$920020,$9400D8
Dc.l $8E3000,$9030FF,$E00007,$E28870,$E40007,$E688A0
Dc.l $1860AAA,$1840EEE,$1820777,$1800002,$FFFFFFFE,$223C3C3C
Dc.l $3C3C3C20,$5554494C,$49545920,$424F4F54,$2056322E,$30203E3E
Dc.l $3E3E3E3E,$35464153,$544D454D,$3A4F4646,$20202020,$20203120
Dc.l $4D454720,$43484950,$3A4F4646,$2C202044,$46313A4F,$46462020
Dc.l $20444632,$3A4F4646,$20202044,$46333A4F,$46462020,$43463120
Dc.l $46415354,$4D454D20,$4F464620,$46322043,$4849502F,$46415354
Dc.l $204F4646,$4C463320,$414C4C20,$4D454D20,$4F4E2020,$4634204B
Dc.l $494C4C20,$44524956,$45532120,$55463520,$48415244,$20524553
Dc.l $45542020,$46362049,$4E535441,$4C4C2042,$4F4F5420,$5E463720
Dc.l $544F4747,$4C45204C,$45442020,$46382054,$4F472050,$414C2F4E
Dc.l $54534320,$6C20204E,$4F205649,$52555320,$48415320,$4245454E
Dc.l $20444554,$45435445,$44212020,$75424F4F,$54204259,$20204E2E
Dc.l $4F2E4D2E,$412E4420,$204F4620,$51554152,$54455821,$0
Dc.l $0,$646F732E,$6C696272,$61727900